#include "func.h"

//Gera arquivo compacto para 8 campos
//Para mais campos, adicionar linhas de código padrao
void GERA_ARQ_COMPACTO(FILE *f, char *input)
{
	char *aux;
	char *str = (char*)malloc(sizeof(char)*100);
	int i=1;
	FILE *fout = fopen(input, "w");
	fgets(str, 100, f);
	while(!feof(f))
	{
		//RA
		aux = strtok(str, "|");
		fprintf(fout, "%d%d%s", strlen(aux), i, aux);
		i++;
		
		//FECHAMENTO
		fprintf(fout,"#\n");
		fgets(str, 100, f);
		fflush(fout);
		i=1;
	}
	fclose(fout);
}


int GERA_ARQ_COM_SEPARADOR(cad strut)
{
	FILE *new_file;
	new_file = fopen("LB02GRUPO14_1_SoSep.txt", "a+");
	if (new_file==NULL)
	{
		printf(ferro);
		fclose (new_file);
		return 0;
	}

	else{
//ra
		fputs (strut->sra, new_file);
		fputs (bar, new_file);

//nome
		fputs (strut->snome, new_file);
		fputs (bar, new_file);
		if(strlen(strut->scidade)!=0)
		{
//cidade      
			fputs (strut->scidade, new_file);
			fputs (bar, new_file);
		}
		else
			fputs (bar, new_file);
		if(strlen(strut->stel)!=0)
		{
//tel
			fputs (strut->stel, new_file);
			fputs (bar, new_file);
		}
		else
			fputs (bar, new_file);    
    
		if(strlen(strut->stel_alt)!=0)
		{
//tel_alt
			fputs (strut->stel_alt, new_file);
			fputs (bar, new_file);
		}
		else
			fputs (bar, new_file);    
//sexo
		fputs (strut->ssexo, new_file);
		fputs (bar, new_file);
//curso
		fputs (strut->scurso, new_file);
		fputs (bar, new_file);    
//#
		fputs (fim, new_file);         
		fputs (lf, new_file);         
	}
	fclose (new_file);
	return 1;
}


int abre_arquivo()
{
	FILE *ap_file, *new_file;
	int i=0,t=0,func;
	cad pessoa = (cad)malloc(sizeof(cadastro));
  
	ap_file = fopen("LB02GRUPO14_1.txt", "r+");
  
	if (ap_file==NULL)
	{
		printf(ferro);
		fclose (ap_file);
		return 0;
	}
  
	fseek(ap_file, 0, SEEK_END);
	t = ftell(ap_file);
  
	printf ("tamanho do arquivo %d\n", t);
	fseek(ap_file,0 , SEEK_SET);
  
  //numero de registros
	t = t / 69;

	while(i<t)
	{
//ra
		fgets (pessoa->sra, ra, ap_file); 
		fseek(ap_file,1, SEEK_CUR);
//nome
		fgets (pessoa->snome, nome, ap_file); 
//cidade
		fgets (pessoa->scidade, cidade, ap_file); 
//tel
		fgets (pessoa->stel, tel, ap_file); 
		fseek(ap_file,1, SEEK_CUR);
//tel_alt
		fgets (pessoa->stel_alt, tel_alt, ap_file); 
		fseek(ap_file,1, SEEK_CUR);
//sexo
		fgets (pessoa->ssexo, sexo, ap_file); 
		fseek(ap_file,1, SEEK_CUR);
//curso
		fgets (pessoa->scurso, curso, ap_file); 

		pessoa->sra[6]='\0';
		pessoa->snome[24]='\0';
		pessoa->scidade[15]='\0';
		pessoa->stel[8]='\0';
		pessoa->stel_alt[8]='\0';
		pessoa->ssexo[1]='\0';

//funcao de arrumar a struct AQUI
//insere no arquivo de saida
		func=GERA_ARQ_COM_SEPARADOR(pessoa);

		if(func==0)
			printf(ferro);

		fseek(ap_file,3, SEEK_CUR);
		i++;
	}
  
	fclose(ap_file);
  
	return 1;
}




